package controller;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

import util.Comandos;
import util.FunctionsUtils;
import view.FrecuenciaFrame;
import view.PrincipalFrame;

/**
 * Controlador FrecuenciaFrame
 * 
 * @author ariel
 * 
 */

public class FrecuenciaController implements ActionListener {

	private FrecuenciaFrame vista;

	public FrecuenciaController(PrincipalFrame principal) {
		this.vista = new FrecuenciaFrame(principal);
		inicializar();
	}

	public void inicializar() {
		vista.setTitle("FrecuenciaFrame");
		vista.getContentPane().setPreferredSize(vista.getSize());
		vista.pack();
		vista.setLocationRelativeTo(null);
		vista.setVisible(true);
		vista.setActionListeners(this);
	}

	public void actionPerformed(ActionEvent e) {
		String comando = e.getActionCommand();
		switch (Comandos.valueOf(comando)) {

		case CAPTURA:
			try {
				Toolkit tool = Toolkit.getDefaultToolkit();
				Dimension d = tool.getScreenSize();
				Rectangle rect = new Rectangle(d);
				Robot robot = new Robot();
				Thread.sleep(2000);
				File f = new File("screenshot.jpg");
				BufferedImage img = robot.createScreenCapture(rect);
				ImageIO.write(img, "jpeg", f);
				tool.beep();
			} catch (Exception e1) {
				e1.printStackTrace();
			}

			break;

		case CALCULAR_FRECUENCIA:

			float edad = Float.parseFloat(vista.getEdad());
			float max = (float) (205.5 - (0.65 * edad));

			float baseCarrera1 = (float) (max * 0.65);
			float baseCarrera2 = (float) (max * 0.70);

			float n1carrera1 = (float) (max * 0.725);
			float n1carrera2 = (float) (max * 0.775);

			float n2carrera1 = (float) (max * 0.80);
			float n2carrera2 = (float) (max * 0.85);

			float n3carrera1 = (float) (max * 0.875);
			float n3carrera2 = (float) (max * 0.925);

			float n4carrera1 = (float) (max * 0.95);
			float n4carrera2 = max;

			vista.setFrecMax(String.valueOf(FunctionsUtils.redondear(max, 0)));
			vista.setCarrera(
					String.valueOf(FunctionsUtils.redondear(baseCarrera1, 0)),
					String.valueOf(FunctionsUtils.redondear(baseCarrera2, 0)),
					String.valueOf(FunctionsUtils.redondear(n1carrera1, 0)),
					String.valueOf(FunctionsUtils.redondear(n1carrera2, 0)),
					String.valueOf(FunctionsUtils.redondear(n2carrera1, 0)),
					String.valueOf(FunctionsUtils.redondear(n2carrera2, 0)),
					String.valueOf(FunctionsUtils.redondear(n3carrera1, 0)),
					String.valueOf(FunctionsUtils.redondear(n3carrera2, 0)),
					String.valueOf(FunctionsUtils.redondear(n4carrera1, 0)),
					String.valueOf(FunctionsUtils.redondear(n4carrera2, 0)));

			float baseCicilsmo1 = baseCarrera1 - 15;
			float baseCicilsmo2 = baseCarrera2 - 15;

			float n1cicilsmo1 = n1carrera1 - 15;
			float n1cicilsmo2 = n1carrera2 - 15;

			float n2cicilsmo1 = n2carrera1 - 15;
			float n2cicilsmo2 = n2carrera2 - 15;

			float n3cicilsmo1 = n3carrera1 - 15;
			float n3cicilsmo2 = n3carrera2 - 15;

			float n4cicilsmo1 = n4carrera1 - 15;
			float n4cicilsmo2 = n4carrera2 - 15;

			vista.setCiclismo(
					String.valueOf(FunctionsUtils.redondear(baseCicilsmo1, 0)),
					String.valueOf(FunctionsUtils.redondear(baseCicilsmo2, 0)),
					String.valueOf(FunctionsUtils.redondear(n1cicilsmo1, 0)),
					String.valueOf(FunctionsUtils.redondear(n1cicilsmo2, 0)),
					String.valueOf(FunctionsUtils.redondear(n2cicilsmo1, 0)),
					String.valueOf(FunctionsUtils.redondear(n2cicilsmo2, 0)),
					String.valueOf(FunctionsUtils.redondear(n3cicilsmo1, 0)),
					String.valueOf(FunctionsUtils.redondear(n3cicilsmo2, 0)),
					String.valueOf(FunctionsUtils.redondear(n4cicilsmo1, 0)),
					String.valueOf(FunctionsUtils.redondear(n4cicilsmo2, 0)));

			break;
		}
	}

}
